A wide variety of memory devices can be used to maintain and store data and instructions for various computers and similar systems. In particular, non-volatile (e.g., flash) memory is a type of electronic memory media that can be rewritten and that can retain content without consumption of power. Unlike dynamic random access memory (DRAM) devices and static random memory (SRAM) devices in which a single byte can be erased, flash memory devices are typically erased in fixed multi-bit blocks or sectors. Flash memory technology can include NOR flash memory and NAND flash memory, for example. NOR flash memory evolved from electrically erasable read only memory (EEPROM) chip technology, in which, unlike flash memory, a single byte can be erased; and NAND flash memory evolved from DRAM technology. Flash memory devices typically are less expensive and denser as compared to many other memory devices, meaning that flash memory devices can store more data per unit area.
Flash memory has become popular, at least in part, because it combines the advantages of the high density and low cost of EPROM with the electrical erasability of EEPROM. Flash memory is nonvolatile; it can be rewritten and can hold its content without power. The physical structure is more robust against shock than volatile memory and has gained popularity in portable devices. It can be used in many portable electronic products, such as cell phones, portable computers, voice recorders, thumbnail drives and the like, as well as in many larger electronic systems, such as cars, planes, industrial control systems, etc. The fact that flash memory can be rewritten, as well as its retention of data without a power source, small size, and light weight, have all combined to make memory devices, that utilize in part flash memory, useful and popular means for transporting and maintaining data.
Conventionally, memory devices are passive, or limited, in their functionality (e.g., limited to write block, read block, erase block). Memory devices also can have narrow interfaces between the memory device and the host processor, typically a mapping for directory-based file system represented as a file allocation table (FAT) contained in a host fast system memory. The FAT utilizes a file translation layer (FTL) that can translate every request for read or write in a file into a request for read/erase/write in the flash memory cell array. Functional processing of data contained on memory devices suffers from a narrow interface between the operating system (OS) of the host and the memory component. In many cases, the interface can be further narrowed for a number of host devices due to the hosts' limited graphical user interface (e.g., on small portable devices). These constraints of limited functionality and narrow interface make the memory device dependent on the host processor for a large portion of functionality.
Various data is conventionally stored in the memory component in a heterogeneous manner (e.g., without regard to file type or use of data). Conventional access (e.g., through the FAT-FTL based representation) to data stored in the memory component can become cumbersome. Trends regarding memory components include both increased use for a multitude of file types and increased capacity for storage of data items.
The limitations of limited functionality, narrow interface and access to stored data become more pronounced as use becomes more prominent and memory device sizes dramatically increase in size. With the increase in size, electronic devices capture, retain and use more data and more various types of data (e.g., hundreds of kilobytes of system files, files comprising directories and bitmaps, megabyte-size MP3 music files, small text files comprising received and sent SMS and mails, kilobyte-size call logs, various media-rich files, tens of megabytes pixels of pictures, advertising coupons, downloaded time tables, user-created notes and “to do” lists, etc.).
Performance and reliability are also concerns with memory systems (e.g., flash memory systems), as memory can have a limited life span (e.g., an upper limit of times the memory can be accessed, read, written or erased). Techniques have evolved in order to preserve device memory. Conventionally, one technique is known as wear leveling. However, this technique operates without regard to the knowledge of what the data in memory might be (e.g., data type) or its relation to other data in memory. Operating without regard to type and relation of data can result in poor reliability and performance. Data required for a single operation can be located in different portions of the memory, necessitating longer read times. Data can be moved during wear leveling and create fragments. The conventional wear leveling techniques becomes less effective as well with increases in file size, number and diversity.
As the trend for greater use and increased size of memory devices is not seen to diminish, it is desirable to improve the memory devices. It is desirable to increase management efficiency of data stored in memory devices to improve life of the device and add functionality to the memory device.